package site.codeyin.javautils.utils.filedownLoad;

import java.math.BigDecimal;
import java.math.RoundingMode;

public class DataRateCalculator {

    /**
     * 计算数据传输速率（MB/s）
     *
     * @param bytesTransferred 传输的字节数
     * @param transferTimeMs    传输时间（毫秒）
     * @return 数据传输速率（MB/s）
     */
    public static String calculateDataRate(long bytesTransferred, long transferTimeMs) {
        if (transferTimeMs <= 0) {
            throw new IllegalArgumentException("传输时间必须大于0毫秒");
        }

        // 将字节转换为MB，并将毫秒转换为秒
        double bytesInMB = bytesTransferred / (1024.0 * 1024.0);
        double seconds = transferTimeMs / 1000.0;

        // 计算MB/s
        double dataRateMBps = bytesInMB / seconds;

        return new BigDecimal(Double.toString(dataRateMBps)).setScale(2, RoundingMode.HALF_UP).toString();
    }

    public static void main(String[] args) {
        long bytes = 10480L; // 10 MB
        long ms = 1000L; // 1秒

        String dataRate = calculateDataRate(bytes, ms);
        System.out.println("数据传输速率: " + dataRate + " MB/s");
    }
}